1. Field of the Invention
The present invention relates generally to mechanical instrument clusters employing stepper motors for providing analog indications of vehicle measurands and, more particularly, techniques which permit interfacing a stepper motor driven mechanical odometer to a serial data communications link of a vehicle.
2. Description of the Prior Art
In prior art systems, a distance sensor, such as a conventional electromagnetic transducer placed in a transmission gearbox of a vehicle, develops pulse signals proportional to the distance traveled by the vehicle. These pulse signals are wired directly to the input of a stepper motor driver circuit. Such an arrangement lacks compatibility with serial data links employing data communication multiplexing. If the mechanical odometer requires a stepper motor input signal, then a system must provide pulses to the stepper motor proportional to the distance traveled by the vehicle.
Data communication multiplexed networks usually interconnect intelligent modules such as an engine controller, a body controller, a vehicle instrument cluster and other electronic modules. Each intelligent module sends messages such as distance pulse information over the link to one or more of the other modules.
In a multiplexed network such as this, the distance pulse information is used by several devices such as a speedometer, a trip computer, an electronic odometer and a mechanical odometer.
In one prior art system, priority schemes permit the intelligent modules to communicate in sequence in accordance with the priority or importance of the message. The engine controller and body controller share sensor response information on the intermodule data communications network. Sensor response information broadcasts occur on the link at various chosen intervals. But, however, distance sensor information broadcasts which occur every 0.344 seconds create gaps in the distance data supplied to the instrument cluster. In the case of an electronic odometer, these gaps are of no consequence since the information is accumulated digitally. However, in the case of a mechanical odometer, the distance pulse information is stored as the analog position of gears and numbered wheels and there is a difficult problem in adapting the digital and intermittent nature of the distance pulse transmissions to the continuous motion of these gears and wheels.
An electrically driven mechanical odometer consists of a stepper motor driving reduction gears which, in turn, drive numbered display wheels. The most straightforward way to drive such an odometer dictates stepping the stepper motor in proportion to the distance sensor count in the message sent over the link. Illustratively, since there are 4000 stepper motor pulses per mile and 8000 distance sensor counts per mile, it would appear that just pulsing the stepper motor a number of times equal to half the received distance sensor counts per mile number would yield proper operation. This approach implies that an odometer driver circuit could receive the distance sensor count information, then drive a stepper motor as fast as possible and then wait for the next distance sensor count information to appear on the link. This approach does not actually permit proper operation.
To understand the problems with this scheme, a more detailed understanding of the operation of the stepper motor is necessary. When the stator coils of the stepper motor are properly energized, the rotor will move or "step" to the next increment of its angular position, typically about a degree. The rotor does not take up its new position instantaneously, however. The rotor itself and the gear train and numbered wheels to which it is connected have a considerable amount of inertia. When the stator coils are energized, the current passing through them generates a magnetic field which exerts a force upon the rotor and gear train assembly. The speed with which the rotor moves is inversely proportional to its inertia and proportional to the force exerted upon it. Since the force is small and the inertia is considerable, the movement takes a small but finite time to happen. If a second and third step commands are given to the motor before it has completed the motion for the first, these commands cannot be carried out because the rotor is not in the correct position and, hence, the motor stops. It is important to understand that if the rotor is already moving when a step command is given to the motor, then it will take less time for it to reach the next step position since there will be less inertia for the force generated by the stator coils to overcome; hence, the motor can be driven faster.
Now, consider the problem of designing a stepper motor drive system as discussed above where some proportion of distance counts are used to step the stepper motor the appropriate number of times when the new distance information is received over the communications link. Due to the force and inertia constraints just discussed, a delay time between the issuance of step pulses must be specified since the step command cannot be carried out instantaneously. However, all of the odometer step pulses must be given in the interval between broadcasts of the distance count information or else the odometer would fall behind in displaying the correct distance. In the prior art system discussed above, the delay necessitated by mechanical factors dictates a delay so long that at 50 miles per hour or greater, the odometer would fall behind. At 65 miles per hour, only two hours driving would put the odometer 30 miles behind where it should be, clearly an unacceptable situation. Other possible solutions are scarcely better. For example, by designing a more powerful stepper motor, the inter-step delay could be reduced but at the cost of designing, tooling, building and stocking a more costly and bulkier non-standard stepper motor. Another approach might be to make the stepper motor driver circuit responsible for varying the delay time based on vehicle speed but this would require considerable circuitry to implement and, hence, drive up the cost of that circuit to an unacceptable level.
A better solution is to drive the stepper motor at the rate necessary to produce the correct odometer movement. At high vehicle speeds, the odometer is rolling continuously so there is never the problem of a long delay between pulses. The change in stepper motor rotor speed is always small and well within the torque capability of the standard motor. This novel approach resulted in the firmware/hardware techniques employed in the present invention.